
/*
 * sndpipe: A UNIX pipes-based audio stream processor toolkit.
 * Copyright (C) 2011  Bradley Worley
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to:
 *
 *   Free Software Foundation, Inc.
 *   51 Franklin Street, Fifth Floor
 *   Boston, MA  02110-1301, USA.
 */

/* ensure once-only inclusion. */
#ifndef __SNDPIPE_OPTS__
#define __SNDPIPE_OPTS__

/* define option long strings and short characters. */
#define OPTS_L_FUNCTION  "function"
#define OPTS_S_FUNCTION  'x'
#define OPTS_L_CHANNELS  "channels"
#define OPTS_S_CHANNELS  'C'
#define OPTS_L_CHANNEL   "channel"
#define OPTS_S_CHANNEL   'c'
#define OPTS_L_CHAN_ONE  "channel-1"
#define OPTS_S_CHAN_ONE  '1'
#define OPTS_L_CHAN_TWO  "channel-2"
#define OPTS_S_CHAN_TWO  '2'
#define OPTS_L_DEVICE    "device"
#define OPTS_S_DEVICE    'D'
#define OPTS_L_RATE      "rate"
#define OPTS_S_RATE      'r'
#define OPTS_L_FORMAT    "format"
#define OPTS_S_FORMAT    'f'
#define OPTS_L_BUFFER    "buffer"
#define OPTS_S_BUFFER    'b'
#define OPTS_L_FREQUENCY "frequency"
#define OPTS_S_FREQUENCY 'F'
#define OPTS_L_PHASE     "phase"
#define OPTS_S_PHASE     'p'
#define OPTS_L_AMPLITUDE "amplitude"
#define OPTS_S_AMPLITUDE 'A'
#define OPTS_L_OFFSET    "offset"
#define OPTS_S_OFFSET    'o'
#define OPTS_L_WAVE      "wave"
#define OPTS_S_WAVE      'w'
#define OPTS_L_DUTY      "duty-cycle"
#define OPTS_S_DUTY      'd'
#define OPTS_L_REMOVE    "remove"
#define OPTS_S_REMOVE    'R'
#define OPTS_L_MODE      "mode"
#define OPTS_S_MODE      'm'
#define OPTS_L_DURATION  "duration"
#define OPTS_S_DURATION  'T'
#define OPTS_L_COEFF     "coefficients"
#define OPTS_S_COEFF     'k'
#define OPTS_L_HELP      "help"
#define OPTS_S_HELP      'h'

/* begin function definitions below: */

int opts_init (int argc, char **argv);

char *opts_get_string (const char opt);

long opts_get_int (const char opt);

double opts_get_float (const char opt);

#endif /* __SNDPIPE_OPTS__ */

